Changing Internal System Behavior

You can configure various RTSS Subsystem behaviors from the Change Internal System Behavior Control Panel page. See below for complete descriptions of the available settings.

NOTE: Some changes to the RTX64 Control Panel require a restart of the RTSS Subsystem. If the Subsystem needs to be restarted, you will see a warning icon at the bottom of the page.

Sections in this Topic:

 


Opening this Page in RTX64 Control Panel

To open this page in the Control Panel:

  1. In the Start menu, navigate to RTX64 4.5 Runtime and click RTX64 Control Panel.
  2. Click Configure the RTSS Subsystem > Change internal system behavior.

Changing the Startup Type

NOTE: This setting requires Windows Administrator privileges.

To change the Startup Type:

Select a Startup Type:

NOTE: Fast startup must be disabled when RTX64 is set to Automatic startup. Fast startup is automatically disabled during installation of RTX64 Runtime, so it’s likely that no further action is needed. However, if Fast startup was manually enabled following the installation of RTX64 Runtime, you will need to manually disable it. To do this, follow the steps below:

  1. Open the Windows Control Panel.
  2. Click Power Options.
  3. Select Choose what the power buttons do.
  4. In the System Settings page, select Change settings that are currently unavailable.
  5. Under Shutdown, clear selection of Turn on fast startup.
  6. Click Save changes.

Changing the HAL Timer Period

The RTX64 HAL Timer is the primary timer that the RTX64 Subsystem uses for all internal synchronization, timers, and wait functionality. The RTX64 HAL Timer depends on the system hardware and processor. RTX64 performance is deterministic when access to the processor is unimpeded. That is, when there is no SMI/SMM activity.

The default value for the subsystem HAL Timer Period is 100 microseconds. This value can be as low as 10 microseconds or as large as 1,000 microseconds.

This value can have an impact on the responsiveness of your subsystems and applications. Application timers can only have periods as small as the subsystem's HAL timer period or a multiple of it. For example, if the HAL timer period is 50 you can create a timer with a period of 50, 100, 200, but not of 130. A value of 130 would be rounded up to 150. For more information, see Application Timer Expiration Behavior.

NOTE: Use caution when setting the HAL timer period below 20 microseconds. If the HAL timer period is set too low, it can inversely impact performance or cause your system to hang. Fully test the timer period you set with your real-time application on all systems on which you will deploy to verify that the hardware can accomplish the compilations required in the period set.

To change the HAL Timer Period:

  1. Select a period from the HAL timer period (microseconds) drop-down menu. The available values are:
  • 1000, 500, 200, 100 (default), 50, 20, 10, 5, 2, 1

If you have configured a custom HAL timer period not listed in the drop-down menu, you can type it in.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

Changing the Default Thread Time Quantum used by the Subsystem

RTX64 is configured to run the highest-priority thread, either until completion or until it yields. There is no round robin within a given priority level. To change this behavior and have RTX64 provide time slices within a priority level, set the default time quantum for all RTSS threads.

NOTE: If the thread time quantum value is less than the HAL timer period, RTX64 will set the interval to the same value as the HAL timer period. If the thread time quantum interval is greater than the HAL timer period, RTX64 will modulo up the HAL timer period. The thread time quantum interval must be a multiple of the HAL timer period.

To change the default Thread Time Quantum used by the Subsystem:

  1. Enter a positive integer value in the Time quantum (microseconds) box. A value of 0 (default) means that threads run to completion.

NOTE: An RTSS application can set its own Time Quantum using RTAPI functions.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

Modifying the Behavior of the Subsystem on TerminateThread Calls

The TerminateThread function causes an RTSS thread to exit. You can configure RTX64 to not free the memory used for an RTSS thread's stack when the thread is terminated. This is a useful setting when developing and debugging your applications.

To modify the behavior of the Subsystem on TerminateThread calls:

  1. Check the box for Free the Stack on TerminateThread calls to free the memory used for an RTSS thread's stack when that thread is terminated. If you do not want the memory to be freed, uncheck this box. The memory will be freed when the Subsystem stops.
  2. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

Modifying the Subsystem's use of Priority Inversion

RTX64 thread scheduling behavior settings provide the option of selecting a priority inversion protocol. Priority inversion protocols are explained in the section on Thread Scheduling.

To modify the Subsystem's use of Priority Inversion:

  1. Check the box for Use priority inversion to utilize a tiered-demotion priority inversion protocol. Uncheck this box to disable priority inversion in the Subsystem.
  2. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

Configuring Intel® Resource Director Technology (RDT) Settings

These settings allow you to enable/disable Intel Resource Director Technology (RDT) performance optimization and configure the available RDT modes for Cache Allocation Technology (CAT) and Memory Bandwidth Allocation (MBA):

RDT uses Class of Service (CLOS) to configure the L3/L2 cache size and memory throttle (delay). As a matter of RTX64 policy for extensibility, CLOS 0 is considered and configured as the highest priority CLOS, followed by CLOS 1, and so on.

For more information, see Optimizing Performance with Intel Resource Director Technology (RDT).

NOTE: These options will be unavailable if the system hardware does not support Intel® RDT performance optimization.

To enable/disable Intel RDT performance optimization:

  1. Choose an option:
  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

To change the CAT/MBA modes:

NOTE: RDT performance optimization must be enabled to change CAT/MBA modes.

  1. Choose a Cache Allocation Technology (CAT) mode:
  1. Choose a Memory Bandwidth Allocation (MBA) mode:

NOTE: Because the MBA controller is provided per core (the maximum of the delay values of the per-thread CLOS applies to the core), we recommend that you disable Hyper-Threading in the system BIOS when MBA is set to Priority-based.

  1. Restart RTX64 for your changes to take effect. If you plan to make additional changes that require a restart of the Subsystem, make all the changes first and then restart RTX64 when you are finished.

RELATED Topics: